VolumeBreak Operator 

image102.gif

The VolumeBreak operator is a volumetric geometry fracturing tool, based on volumeBreaker, that will instantly create sub-geometry within any mesh - geometry that perfectly fits together and fills the given volume. With volumeBreaker cebas brings a Hollywood-quality destruction tool to 3ds MAX. VolumeBreaker was developed in consultation with, and to meet the very exacting demands of, VFX artists working on multi-million-dollar movies.

VolumeBreak can be applied to virtually any mesh, including meshes that are 'lazy' and not a fully enclosed volume. VolumeBreaker will attempt to compensate for any errors within the mesh, such as unwelded vertices and open edges. The sub-geometry created is output as individual "fragment" particles, accessible within thinkingParticles by any available operator.

Operator Inputs 

ON - (Bool) This input data stream determines whether the operator is considered 'on' or 'off.' You can connect other operators to this input channel such as a Bool Helper to activate/deactivate the whole operator. For example, if you set this operator's Activation parameter to 100% and control the ON input dynamically, you can instantly fragment a particle shape at that time.

Time
- (Time) This input data stream is used to define the local time for the operator when the user wants to override the default system time.

Operator Outputs 

Born Particle - outputs the currently created particle information for the fragment particle. Use this to modify specific particle properties.


Rollout Menus
 

image265.gif

Group
- sets the particle group in which the fragment particles are born.

Activate
- defines how fragmented the particle shape will be. 100% means completely fragmented. 0% means no fragmentation. Usually you would want to animate this amount. This can be done dynamically in a variety of ways, including but not limited to the Timer operator or the Counter operator (or even a simple animated Float helper).

From To
- sets the method and order of releasing fragments. You may choose from multiple "release" directions for the fragments. Keep in mind that volumeBreaker is all about "volume" and this means fragments are created inside of an object and so the release direction plays an important role! Check out the options as shown below:

image103.gif

Max Recursion - defines the maximum recursion depth for secondary breaking of an already broken object. The higher this number the finer it will be broken. Be aware that just a few recursions may create millions or even billions of triangles!


Use Light
- when checked, illumination strength of picked light sources can be used to define the Hierarchical breaking of an object.

Threshold
- defines the illumination level (brightness) that needs to be present at the point to initiate a fragmentation of the FGroup. Note that this brightness is tested at the center of VB cell.

Pick
- lets you pick any light in the scene

Rem
- removes the selected light form the list of lights

Use Helper
- check this option to use any Helper object in the scene to trigger a Fragmentation

Threshold
- sets the "trigger" distance for the helper object. This world space value sets the absolute distance at which the fragmentation process should start. Again, this distance is tested from the center of the VB cell (i.e. the VB fragment).

Pick
- click this button to add scene object to the list of fragmentation triggers.

Rem
- click this button to remove the selected helper object from the list of fragmentation trigger helpers.

Use Map
- when checked a texture map is used to initiate the breaking off from a FGroup.

Threshold
- defines the breaking trigger value for the hierarchy levels by using a standard 3ds Max texture map. The trigger values are defined as: black color = 0 and white color = 1.

Spreading Size%
- a radius set in world units, relative to the bounding box of the object. Using this feature will create a progressive "breaking" effect of an object. This "search" or affect radius is increased in size over time (controlled by Spreading Time) it's perfect to simulate shock waves running through a complex object hierarchy. All objects (picked for this operator) falling into this radius will be broken off , without testing any other possible trigger events (Map,Light etc)!

Spreading Time
- defines the time the radius needs to grow in size (in frames; standard 3ds Max system time).

Spreading Gradient
- lets you define the animation curve of the spreading radius, this works similarly to an ease in or ease out curve. The gradient is defined as this: the left hand side of the gradient represents radius size 0 the right hand side represents size 100%. A Spreading Time value of 30 frames will look "into" this gradient 30 times (30 samples). This method of control offers full control over the radius size animation. A black color will create a radius of 0 while a white color in the gradient will create a size of 100%.

Speed
- sets the speed the fragments should obtain after they have been released.

Variation
- adds some randomness to the Speed value. The higher the variation value the more difference in speed the particles will have.

Direction
- defines the direction the fragments fly off their original mesh. There are several options to choose from:

image103.gif
X,Y,Z
- sets the fragment direction to be either along the X,Y or Z axis.

Spherical
- choose this to have the fragments radiate out of the object's center

Cylindrical X,Y,Z
- defines the travel direction of the fragments in cylindrical manner

Activate
- choose this option to use the axis, as it was set in the From To activation menu, above.

Variation
- adds some randomness to the direction value. The higher the variation value the more difference in speed the particles will have.

VolumeBreaker 

image103.gif

The default fracturing method used by volumeBreaker is based on a Voronoi tessellation; with Raster, you control the size and spacing of the cell tessellation. However, any particle Group may also be selected to define the "breaking cells" instead of a regular raster.

Cells
- when a particle group is selected the Raster related functionality is turned off. As shown below, the drop down menu will give access to the particle groups as they have been defined in thinkingParticles.

image103.gif

Raster
- the raster size defines the minimum spacing between cells and therefore controls the size of the cells created. Be warned that smaller raster sizes will produce a LOT of geometry and could take some time to calculate. This value is measured as a percentage of the bounding box size with 100% being as big as the bounding box of the object. We recommend testing with values in the 5-10% range before going too much lower.


image image image
Raster: 150mm Raster: 250mm Raster: 400mm
Density: 1500 Density: 1500 Density: 1500
 
Note that the leftmost image has had the number of cells created limited by the Max Chunks option (see below).
 
 

Density - controls how many cells are placed relative to the centers defined by the raster size. This alters both the size and the distribution of the cells created.


image image image
Raster: 250mm Raster: 250mm Raster: 250mm
Density: 300 Density: 750 Density: 2000
 
 

Random Seed - sets the random seed used to generate the initial cell distribution.

Material ID
- This sets the material ID number of all the interior faces that are created by volumeBreaker. All external faces maintain their current material IDs and UVW mapping co-ordinates.

Max Chunks
- This defines the maximum number of cells that will be created by volumeBreaker. This is useful to avoid long calculation times when creating particularly dense geometry. The number of cells actually created by volumeBreaker is shown below this control to assist you in optimizing your final result.

ZSnap
- defines the maximum distance to the cutting plane, beyond which a new vertex is not created. This feature is used to avoid vertices being too close together, think of it as a minimum distance between vertices on the same 'chunk' in the volumeBreaker solution. Use this function to avoid generating a huge amount of thin ultra small triangles which can cause render errors.

WARNING:
Very high values for the ZSnap offset can result in meshes that interpenetrate, these will be illegal for any rigid body simulation that attempts to use such meshes.

Weld Distance - defines the distance to be used to weld two or more Vertices into one, measured as a percentage of the elements bounding box.

Scale X,Y,Z
- defines for each single axis a scaling/stretching factor for the volume raster

image

image

image

image

ZSnap: 0mm

ZSnap: 100mm

 

These sample images show an exaggerated Adjust Plane effect so that you can understand what this function does, you certainly don't want to use values this high in your actual scenes.